iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0

今天我要用昨天匯入kaggle資料,透過神經網路模型來繪製損失函數折線圖,最後希望可以用測試資料計算出誤差百分比。
一開始我們先對資料作處理,透過下列的程式碼可以將data裡的字串格式轉變成數值的年、月、日。

data['year'] = pd.to_numeric(data['date'].str.slice(0, 4))
data['month'] = pd.to_numeric(data['date'].str.slice(4, 6))
data['day'] = pd.to_numeric(data['date'].str.slice(6, 8))

刪除沒有用的資料,將更新後的資料存回原本的地方。

data.drop(['id'] , axis="columns",inplace=True)
data.drop(['date'] , axis="columns",inplace=True)

https://ithelp.ithome.com.tw/upload/images/20200924/20130246qC93BaAOca.png

將資料分割成三個部分:訓練資料、驗證資料、測試資料

取的一筆資料,並把他們打散把資料的比例做劃分。

data_num =data.shape[0]
indexes = np.random.permutation(data_num)
train_indexes = indexes[:int(data_num*0.6)]
val_indexes = indexes[int(data_num*0.6):int(data_num*0.8)]
test_indexes = indexes[int(data_num*0.8)]

透過索引值從data取出訓練資料、驗證資料和測試資料

train_data = data.loc[train_indexes]
val_data = data.loc[val_indexes]
test_data = data.loc[test_indexes]

標準化

標準化主要是將不同的資料縮放到相同的大小,如果你的資料量差異極大,可能會導致網路重視較大的資料而忽略數值小的資料,為了解決這個問題,我們通常把資料縮放至0~1或-1~1之間

公式:(x-mean)/std

train_validation_data = pd.concat([train_data,val_data])
mean = train_validation_data.mean()
std = train_validation_data.std()
train_data = (train_data-mean)/std
val_data = (val_data-mean)/std

利用numpy格式訓練資料

x_train = np.array(train_data.drop('price', axis='columns'))
y_train = np.array(train_data['price'])
x_val = np.array(val_data.drop('price', axis='columns'))
y_val = np.array(val_data['price'])
x_train.shape

https://ithelp.ithome.com.tw/upload/images/20200924/20130246D4S07RSXqE.png
由此可知訓練資料為12967筆,每筆資料有21種資訊。今天都把資料轉換成資訊,明天就可以直接拿來training了。


上一篇
Kaggle 介紹
下一篇
房價預測模型(二)
系列文
Tensorflow2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言